package org.tinycloud.tinyjob.bean.dto;

import lombok.Getter;
import lombok.Setter;
import org.hibernate.validator.constraints.Length;

import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.List;

@Getter
@Setter
public class HostsEditDto implements Serializable {
    private static final long serialVersionUID = -1L;

    /**
     * 服务id（主键id）
     */
    @NotNull(message = "服务id不能为空")
    private Long id;

    /**
     * 服务名称
     */
    @NotEmpty(message = "服务名称不能为空")
    @Length(max = 64, min = 1, message = "服务名称不能超过64个字符")
    private String hostName;

    /**
     * 服务标识
     */
    @NotEmpty(message = "服务标识不能为空")
    @Length(max = 64, min = 1, message = "服务标识不能超过64个字符")
    private String hostSign;

    /**
     * 服务类型
     */
    @NotEmpty(message = "服务类型不能为空")
    @Length(max = 1, min = 1, message = "服务类型不能超过1个字符")
    private String hostType;

    /**
     * 项目id
     */
    @NotNull(message = "项目id不能为空")
    private Long projectId;

    /**
     * 备注信息
     */
    @Length(max = 500, min = 0, message = "备注信息不能超过500个字符")
    private String remark;

    /**
     * 服务地址
     */
    @Valid
    @Size(max = 100, message = "服务地址列表最多包含100个元素")  // 限制列表大小
    private List<HostsAddItemDto> hostItems;
}
